8.0新增功能

本文说明8.0版本的新增功能及变更内容,你将了解到:

[!div class="checklist"]

  • 命名更新
  • 创建解决方案
  • 新增功能
  • 其他更新
  • 模板更新
  • 升级迁移

命名更新

从8.0开始,我们对包名称和命令名称进行了更改。我们使用了全新的名称:

 _____    _____   __     __
|  __ \  |  __ \  \ \   / /
| |  | | | |__) |  \ \_/ / 
| |  | | |  _  /    \   /  
| |__| | | | \ \     | |   
|_____/  |_|  \_\    |_|

其含义为:Don't repeat yourself,这也是本工具的主要目标。

包名从ater.dry.cli修改成ater.dry

命令从droplet修改成dry

创建解决方案

之前要使用本工具,你需要先手动下载项目模板 ater.web.templates,使用模板创建解决方案,然后将项目添加到Studio中进行管理。

现在工具支持图形化界创建新解决方案,并增加了灵活的选项,以简化创建项目后的一些配置操作。

新增功能

在8.0中主要新增的功能:

  • 添加创建新解决方案功能。
  • 添加了快速切换项目的交互。
  • 前端添加模型Tab,可据此生成代码片段。
  • 添加版本检测功能,提供从7.x升级到8.0的 升级功能,帮助将旧项目模板升级到8.0。
  • 添加了对模块的支持。现在可以通过工具创建新的模块,以对项目代码进行拆分开发。代码生成也会自动判断是否为模块实体,如果是模块实体,相应的代码生成会生成到模块目录。
  • 添加了更多基础功能的实现,后续以模块的形式添加更多功能支持,可自由选配。

其他更新

其他优化和更新包括

  • 文本提示和说明内容完善和更新。
  • 部分界面效果完善。
  • 添加项目类型标识:目前支持.NET或NodeJS。
  • 修改了导航命名和路由。
  • 项目列表现在会先判断是否在本地存在,如果你手动删除了本地目录,项目列表中也会删除。
  • 在header右侧添加版本号的显示。
  • 优化实体搜索,支持搜索模块名,以显示该模块下的实体。
  • 统一了弹窗的操作按钮位置,统一到右下角。
  • 添加了更新Swagger文档配置的功能。

模板变更

新的模板结构进行了更新,主要包括:

  • 将与业务代码无关的基础代码拆分成Ater.Web.CoreAter.Web.Abstacture两个独立的项目,以便后续更好的复用。

  • Core项目命名修改成Entity,只保留实体类,其他基础代码移动到Ater.Web.Core项目。

  • Application中的接口和抽象等内容,移动到Ater.Web.Abstacture项目中,其他变动包括:

    • 移除了Interface文件夹。
    • IUserContext移动到项目根目录。
    • DataStoreContext.csImplement目录移动到根目录。
    • StoreServicesExtensions.csImplement目录移动到根目录,并重命名为ManagerServiceCollectionExtensions.cs
    • ServiceExtension.cs进行了完善更新,并修改名称为AppServiceCollectionExtensions
  • Http.APIInfrastructure新增了ServiceCollectionExtension.cs文件。

  • Http.API更新了完善了appsetting.json,以提供更多灵活的配置。

  • src目录中新增了Modules目录,以提供对模块的支持。

  • .dry-config工具配置文件,进行了更新,添加了SolutionType表示项目类型。

  • 移除了一些新版本中无用的历史兼容性文件。

  • 其他模板文件细节完善。

新的模板基于NET8ASP.NET Core 8,在代码层面上进行了更新。

升级迁移

由于8.0与7.x版本变更较大,增加了不少新特性,同时变得更灵活,是不兼容的破坏性更新,但好处是为了之后添加更多业务模块支持提供了支撑。

我们强烈建议使用最新的.NET和dry工具,采用新的模板进行新项目的开发,以能够获取后续版本新特性的加持。

为了让使用7.x版本的用户更方便的迁移到新版本,我们花了大量的时间提供了升级迁移工具,尽量将您迁移的成本降低。

当你使用新版本Studio添加旧版本的项目时,会看到版本更新提示,您只需要按照提示进行项目更新即可!

Tip

你也可以创建新的模板项目,根据文档说明和代码差异,将旧代码迁移到新项目结构中。